<?php
class Account_Controller extends Controller
{
        protected $form_post,$j,$k,$p;
	public function __construct()
	{
		parent::__construct();
                $this->session=new Session();
                $this->input=Input::instance();
                $this->j=new Jednostka_Model();
                $this->k=new Kategoria_Model();
                $this->p=new Produkt_Model();
	}

	/*
         * pobiera wartosci z Dialoga (UI) i dodaje do bazy danych
         *
         */
        public function import_formularza(){
            $this->p->dodaj_produkt_z_importu($this->input->post());
        }
	public function listaproduktow($wybor=null)
        {
            $this->url();
            $slowa=null;
            if (isset($_POST['wyszukaj']) and $_POST['wyszukaj']!='')
                $slowa=htmlspecialchars($_POST['wyszukaj']);

            $t=explode(',',$wybor);
            if ($wybor==null)
                $this['listaproduktow']=$this->p->pobierz_wszystkie($slowa);

            if (count($t)!=1)
                {
                $this['wybor']=$t[1];
                $this['kategoriawybrana']=$t[0];
                $this['listaproduktow']=$this->p->pobierz_wg_podkategorii($t[1],$slowa);
                }
            if (count($t)==1 and $t[0]!='')
                {
                $this['kategoriawybrana']=$t[0];
                $this['listaproduktow']=$this->p->pobierz_wg_kategorii($t[0],$slowa);
                }
            $kategorie_=$this->k->pobierz_kategorie();
            $podkategorie=$this->k->podkategorie_kategorii($t[0]);
            unset($kategorie_['Wybierz']);
            $this['kategorie']=$kategorie_;
            $this['podkategorie']=$podkategorie;
            echo $this->render('account/listaproduktow.html');
	}
    	private function import_produktow($nazwa,$nrindeks,$cena,$ilosc,$jednostka,$kategoria){
            $p = new Produkt_Model();
            //$tablica['nazwa']
            //$this->p->dodaj_produkt_z_importu()
            //echo 'sss'.$_POST['importowanie'];
        }
        /*
         * importuje dane z pliku arkusza kalkulacyjnego
         */
        public function import()
        {
            $this->url();
            APPPATH."forms/SRM/Gielda/Form/ImportProdukt.php";
            APPPATH."libraries/SRM/Data/Import/ExcelSchema.php";
            require_once APPPATH."forms/SRM/Gielda/Form/ImportProdukt.php";
            require_once APPPATH."libraries/SRM/Data/Import/ExcelSchema.php";

             $formularz_importuj=new SRM_Gielda_Form_ImportProdukt();
             $this['import']=$formularz_importuj;
             if (isset($_POST['importowanie']))
                 echo $_POST['importowanie'];
             if (isset($_POST['importowanie']))
                 {
                 echo 'import przeslany';
                 }
                if (request::method()=="post")
                    {
                    $czytnik_xls = new SRM_Data_Import_Produkty(false);
                    $this['import']->bind($this->input->post(),$_FILES);
                    if ($this['import']->isValid())
                        {
                        $plik=$this['import']->getValue('plik');
                        //var_dump($plik);
                        $tablica_produktow=$this->p->import_produktow($plik);
                        $tablica_nazw=$tablica_produktow[0];
                        unset($tablica_produktow[0]);
                        $this['kategoria']= new sfWidgetFormChoice(array('choices'=>$this->k->pobierz_kategorie()));
                        $this['produkty']=$tablica_produktow;
                        $kat=$this->k->pobierz_kategorie();
                        unset($kat['Wybierz']);
                        $this['kategorie']=$kat;
                        $this['jednostka']=$this->j->wszystkie_nazwy();
                        echo $this->render('account/import_dialog.html');
                        }
                    }
                    else
                        echo $this->render('account/import.html');
        }
        /*
         * formularz sluzy do usuwania TYLKO zalacznikow
         * (zalaczniki,zdjecia danego produktu)
         * @param $id_produktu-id bazowe produktu
         */
        public function usuwanie_zalacznikow($id_produktu){

	 echo $this->render('account/edytuj.html');
        }
        public function spr(){
            echo 'ok';
        }
	public function test($r){
            $test=new Produkt_Model();
            $test->test_($r);
            echo "ok";
        }
        public function formularz_edycja($defaults,$id_produkt){
                $d=new Produkt_Model();
                
                $pobrany_produkt=$d->pobierz_produkt();
                $defaults=array('nazwa'=>$pobrany_produkt['nazwa'],
                        'opis'=>$pobrany_produkt['opis'],
                        'jednostka'=>$pobrany_produkt['jednostka'],
                        'kategoria'=>$pobrany_produkt['kategoria']);

                $formularz_edycja=new SRM_Gielda_Form_EdycjaProdukt();
                $widget2 = new sfWidgetFormChoice(array('choices'=>$this->k->pobierz_kategorie()));
                $formularz_edycja->setWidget('kategoria', $widget2);
                $walidator2 = new sfValidatorChoice(
                    array('choices'=>$this->k->kategorie_wlasciwe()),
                    array("required"=> "Proszę wybrać kategorię"));
                $formularz_edycja->setValidator('kategoria', $walidator2);

                $wartosci=$this->j->wszystkie_nazwy();
                $widget2 = new sfWidgetFormChoice(array('choices'=>$wartosci));
                $formularz_edycja->setWidget('jednostka', $widget2);
                    unset($wartosci['']);// do walidacji
                $walidator2 = new sfValidatorChoice(
                    array('choices'=>$wartosci),
                    array("required"=>"Proszę wybrać jednostkę miary"));
                $formularz_edycja->setValidator('jednostka', $walidator2);
                
                $formularz_edycja->setDefaults($defaults);
                return $formularz_edycja;
        }
        /*
         * otwiera formularz do edycji danego produktu
         */
	public function edytuj_produkt($id_produktu=null)
	{
            $this->url();
             APPPATH."forms/SRM/Gielda/Form/EdycjaProdukt.php";
             require_once APPPATH."forms/SRM/Gielda/Form/EdycjaProdukt.php";
                $d=new Produkt_Model();
                /*
                 * po wybraniu produktu z listy
                 * id_produktu nie jest puste
                 *
                 * po dodaniu nowego produktu
                 * id_produktu jest puste ale
                 * aktualny produkt jest zapisany w sesji
                 */
                if ($id_produktu==null)
                    {
                    $this['kierunek']="account/edytuj_produkt";
                    $d->set_id_produktu($this->session->get('id_produktu'));
                    }
                else
                    $d->set_id_produktu($id_produktu);
                
                $pobrany_produkt=$d->pobierz_produkt();
                $defaults=array('nazwa'=>$pobrany_produkt['nazwa'],
                        'opis'=>$pobrany_produkt['opis'],
                        'jednostka'=>$pobrany_produkt['jednostka'],
                    'cena'=>$pobrany_produkt['cena'],
                    'ilosc'=>$pobrany_produkt['ilosc'],
                        'kategoria'=>$pobrany_produkt['kategoria']);
                
                $formularz_edycja=new SRM_Gielda_Form_EdycjaProdukt();

                $wartosci=$this->k->wszystkie_nazwy();
                $widget2 = new sfWidgetFormChoice(array('choices'=>$this->k->pobierz_kategorie()));
                $formularz_edycja->setWidget('kategoria', $widget2);
                    unset($wartosci['']);// do walidacji
                $walidator2 = new sfValidatorChoice(
                    array('choices'=>$this->k->kategorie_wlasciwe()),
                    array("required"=> "Proszę wybrać kategorię"));
                $formularz_edycja->setValidator('kategoria', $walidator2);

                $wartosci=$this->j->wszystkie_nazwy();
                $widget2 = new sfWidgetFormChoice(array('choices'=>$wartosci));
                $formularz_edycja->setWidget('jednostka', $widget2);
                    unset($wartosci['']);// do walidacji
                $walidator2 = new sfValidatorChoice(
                    array('choices'=>$wartosci),
                    array("required"=>"Proszę wybrać jednostkę miary"));
                $formularz_edycja->setValidator('jednostka', $walidator2);
               
                $formularz_edycja->setDefaults($defaults);
                
                //$this['form2']=$this->formularz_edycja($defaults);
                $this['form2'] =$formularz_edycja;
                
                if (request::method()=="post")
                    {
                     $this['form2']->bind($this->input->post(),$_FILES);

                    if ($this['form2']->isValid())
                        {
                        foreach($defaults as $nazwa=>$e)
                           $dane_produktu[$nazwa]=$this['form2']->getValue($nazwa);
                        var_dump($dane_produktu);
                        if ($this['form2']->getValue('zalaczniki')!=null)
                            {
                            $klasa_zalacznik=new Zalacznik_Model();
                            $klasa_zalacznik->dodaj($this['form2']->getValues(),$d->id_aktualny_dodany_produkt());
                            }
                        $d->aktualizuj($dane_produktu);
                        $this->session->delete('id_produktu');
                        echo '<br>zapisano zmiany';
                        }
                        else
                            {
                            $this['kierunek']="";
                            echo $this->render('account/edytuj.html');
                            }
                    }
                    else
                        echo $this->render('account/edytuj.html');
	}

	public function lista_produktow()
	{

            $this->url();
            $url_do_dodawania=url::base().'index.php/account';
            $slowa='';
            $test=new Produkt_Model();
            if(isset($_POST['wyszukaj']) and $_POST['wyszukaj'] != ''){
                $this['lista_produktow']=$test->pobierz_wybrane(htmlspecialchars($_POST['wyszukaj']));
            }
            else
                {
                if (isset($_POST['check']))
                {
                    $test->zmien_status_produktu($this->input->post());
                    $this['lista_produktow']=$test->pobierz_wszystkie();
                }
                else
                    $this['lista_produktow']=$test->pobierz_wszystkie(null);
                }
                $this['url_do_dodawania_produktow']=$url_do_dodawania;

                $conf=array(
                     'base_url'    => 'account/listaproduktow/',
        'uri_segment' => 'page',
	'total_items'=> 100,
	'style' => "digg",
	'items_per_page' => 10,
	'auto_hide' => true
 );
                $this->pagination = new Pagination($conf);
                echo $this->pagination->render('digg');
                //$this->pagination->render(true);
                //var_dump($this->pagination);
                //$this->_templateContext->set
                //var_dump($this->pagination->initialize());
                //$this['pp']=$this->pagination->initialize();

            //echo $this->render('account/lista.html');




	}	
	public function zapisywanie()
        {
            APPPATH."forms/SRM/Gielda/Form/EdycjaProdukt.php";
            require_once APPPATH."forms/SRM/Gielda/Form/EdycjaProdukt.php";
            $zapisz=new Produkt_Model();
            $zapisz->set_id_produktu($this->session->get('id_produktu'));
            $zapisz->aktualizuj($this->input->post());
	}
        private function url(){
            $url=url::base().'index.php/account';
            $this['url']=$url;
            $this['plik']=url::base();
        }
	public function index()
	{       
            APPPATH."forms/SRM/Gielda/Form/NowyProdukt.php";
            APPPATH."forms/SRM/Gielda/Form/EdycjaProdukt.php";
            require_once APPPATH."forms/SRM/Gielda/Form/EdycjaProdukt.php";
            require_once APPPATH."forms/SRM/Gielda/Form/NowyProdukt.php";
            $this->url();
            $formularz=new SRM_Gielda_Form_NowyProdukt();
            // jednostka miary
            $wartosci=$this->j->wszystkie_nazwy();
            $widget = new sfWidgetFormChoice(array('choices'=>$wartosci));
            $formularz->setWidget('jednostka', $widget);
            unset($wartosci['']);// do walidacji
            $walidator = new sfValidatorChoice(
                    array('choices'=>$wartosci),
                    array("required"=> $formularz->informacja("Proszę wybrać jednostkę miary")));
            $formularz->setValidator('jednostka', $walidator);
            //koniec
            //kategoria
            $wartosci=$this->k->wszystkie_nazwy();
            $widget = new sfWidgetFormChoice(
                    array('choices'=>$this->k->pobierz_kategorie()));
            $formularz->setWidget('kategoria', $widget);
            unset($wartosci['']);// do walidacji
            $walidator = new sfValidatorChoice(
                    array('choices'=>$this->k->kategorie_wlasciwe()),
                    array("required"=> $formularz->informacja("Proszę wybrać kategorię.")));
            $formularz->setValidator('kategoria', $walidator);
            $this['form']=$formularz;
            if (request::method()=="post")
            {
                //$this['form']->setDefault('zdjecie',$this->input->post('zdjecie'));
                $this['form']->bind($this->input->post(),$_FILES);
                if ($this['form']->isValid())
                {
                    $nowy_produkt=new Produkt_Model();
                    $nowy_produkt->dodaj($this['form']->getValues());
                    $klasa_zalacznik=new Zalacznik_Model();
                    $klasa_zalacznik->dodaj($this['form']->getValues(),$nowy_produkt->id_aktualny_dodany_produkt());
                    $this->session->set('id_produktu', $nowy_produkt->id_aktualny_dodany_produkt());

                    $pobrany_produkt=$nowy_produkt->pobierz_produkt();
                    $defaults=array('nazwa'=>$pobrany_produkt['nazwa'],
                        'opis'=>$pobrany_produkt['opis'],
                        'jednostka'=>$pobrany_produkt['jednostka'],
                        'cena'=>$pobrany_produkt['cena'],
                        'ilosc'=>$pobrany_produkt['ilosc'],
                        'kategoria'=>$pobrany_produkt['kategoria']);
                    
                    $formularz_edycja=new SRM_Gielda_Form_EdycjaProdukt();

                    $wartosci=$this->k->wszystkie_nazwy();
                    $widget2 = new sfWidgetFormChoice(array('choices'=>$this->k->pobierz_kategorie()));
                    $formularz_edycja->setWidget('kategoria', $widget2);
                        unset($wartosci['']);// do walidacji
                    $walidator2 = new sfValidatorChoice(
                        array('choices'=>$this->k->kategorie_wlasciwe()),
                        array("required"=> "Proszę wybrać kategorię"));
                    $formularz_edycja->setValidator('kategoria', $walidator2);

                    $wartosci=$this->j->wszystkie_nazwy();
                    $widget2 = new sfWidgetFormChoice(array('choices'=>$wartosci));
                    $formularz_edycja->setWidget('jednostka', $widget2);
                        unset($wartosci['']);// do walidacji
                    $walidator2 = new sfValidatorChoice(
                        array('choices'=>$wartosci),
                        array("required"=>"Proszę wybrać jednostkę miary"));
                    $formularz_edycja->setValidator('jednostka', $walidator2);

                    $formularz_edycja->setDefaults($defaults);
                    $this['zalaczniki']=$klasa_zalacznik->pobierz_nazwy_zalacznikow($nowy_produkt->id_aktualny_dodany_produkt());
                    $obraz['nazwa']=$pobrany_produkt['obraz'];
                    $obraz['id']=$pobrany_produkt['id_produkt'];
                    $this['zdjecie']=$obraz;
                    //$this['form2']=$this->formularz_edycja($defaults);
                    $this['form2'] =$formularz_edycja;
                    $this['kierunek']="account/edytuj_produkt";
                    echo $this->render('account/edytuj.html');
                }
                else
                    echo $this->render('account/index.html');
            }
            else
                echo $this->render('account/index.html');
	}
        public function odbierz(){
            
            $this->form_post=$this->input->post();
            $zdjecie=$_FILES['zdjecie'];
            $zalacznik=$_FILES['zalacznik'];

            $produkt=new Produkt_Model();
            $produkt->dodaj($this->form_post,$zdjecie);
            $klasa_zalacznik=new Zalacznik_Model();
            $klasa_zalacznik->dodaj($zalacznik,$produkt->id_aktualny_dodany_produkt());
            
        }

}